﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.IO;
using MySql.Data.MySqlClient;

namespace ctrlwct
{
    
    public partial class ctrlmaingui : Form
    {
        private DataTable dt = new DataTable();
        private DataSet ds = new DataSet();
       public ctrlmaingui()
        {
            InitializeComponent();
            
           try
           {
               if (File.Exists("C:/temp/actvusr.xml"))
               {
                   
                using (XmlReader reader = XmlReader.Create("C:/temp/actvusr.xml"))
                {
                    string usuarioactual = null;
                    
                    while (reader.Read())
                    {
                        if (reader.IsStartElement())
                        {
                            switch (reader.Name)
                            {
                                case "activo":
                                    if (reader.Read())
                                    {
                                        if (usuarioactual == null)
                                        {
                                            usuarioactual = reader.Value;
                                        }
                                        usuarioactual = reader.Value;
                                    }
                                    break;
                            }
                        }
                        
                    }
                    lblactusr.Text = usuarioactual;
                    
                }
               }
           }
           catch
           {
               MessageBox.Show("Error de lectura, Archivo Cache no encontrado, Contacte al Administrador");
               this.Close();
           }
           dt = Users.GetUsers();
           ds.Tables.Add(dt);
           dataGridView1.DataSource = dt;
           MySqlConnection conectar = ctrlwct.Conexion.ObtenConexion();
           try
           {
               conectar.Open();
               string admin;     
               if (conectar != null)
               {
                   using (MySqlCommand obtenadmin = ctrlwct.Conexion.Comandos("SELECT Role FROM Users WHERE User='"+lblactusr.Text+"'", conectar))
                   using (MySqlDataReader readadmin = obtenadmin.ExecuteReader())
                   {
                       readadmin.Read();
                       admin = readadmin.GetString(0);
                       /// MessageBox.Show(admin);
                       if (admin != "S")
                       {
                           tabControl1.TabPages.Remove(tabPage4);
                       }
                   }
               }
               conectar.Close();
           }
           catch
           {
               MessageBox.Show("Error, no se puede accesar a la base de datos, contacte al administrador");
           }
        }

       private void button1_Click(object sender, EventArgs e)
       {
           this.Close();
       }
 

       private void button2_Click(object sender, EventArgs e)
       {
           tabControl1.TabPages.Remove(tabPage4);
       }

       private void button3_Click(object sender, EventArgs e)
       {
           tabControl1.TabPages.Add(tabPage4);
       }
       private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
       {
           this.textBox1.Text = Convert.ToString(this.dataGridView1.CurrentRow.Cells[0].Value);
           this.textBox2.Text = Convert.ToString(this.dataGridView1.CurrentRow.Cells[3].Value);
           this.textBox3.Text = Convert.ToString(this.dataGridView1.CurrentRow.Cells[1].Value);
           this.textBox4.Text = Convert.ToString(this.dataGridView1.CurrentRow.Cells[2].Value);
       }

       private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
       {
           this.textBox1.Text = Convert.ToString(this.dataGridView1.CurrentRow.Cells[0].Value);
           this.textBox2.Text = Convert.ToString(this.dataGridView1.CurrentRow.Cells[3].Value);
           this.textBox3.Text = Convert.ToString(this.dataGridView1.CurrentRow.Cells[1].Value);
           this.textBox4.Text = Convert.ToString(this.dataGridView1.CurrentRow.Cells[2].Value);
       }

       private void button7_Click(object sender, EventArgs e)
       {
           if (textBox1.Text != "")
           {
               if (textBox1.Text == "wctsa")
               {
                   MessageBox.Show("Error, este usuario es de sistema y no es editable");
               }
               else
               {
                   UserEdit frm = new UserEdit();
                  frm.useredit = "Y";
                  frm.user = textBox1.Text;
                  frm.Nombre = textBox2.Text;
                  frm.SA = textBox3.Text;
                  frm.Role = textBox4.Text;
                  frm.actuser = lblactusr.Text;
                   
                
                   if (frm.ShowDialog() == DialogResult.OK)
                   {


                       dt = Users.GetUsers();
                       ds.Tables.Add(dt);
                       dataGridView1.DataSource = dt;
                       MySqlConnection conexion = GuiLogin.Conexion.ObtenConexion();
                       conexion.Open();
                       conexion.Close();
                       textBox1.Text = "";
                       textBox2.Text = "";
                       textBox3.Text = "";
                       textBox4.Text = "";
                       Tiempo.Enabled = true;
                       Tiempo.Interval = 1;
                   }
               
               }

           }
           else
           {
               MessageBox.Show("Error, debe seleccionar un usuario primero");
           }
       }

       private void button6_Click(object sender, EventArgs e)
       {
           if (textBox1.Text != "")
           {
               if (textBox1.Text == "wctsa")
               {
                   MessageBox.Show("Error, este usuario es de sistema y no se puede eliminar");
               }
               else
               {
                   if (lblactusr.Text == textBox1.Text)
                   {
                       MessageBox.Show("Error de operación, no se puede borrar el usuario activo", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                   }
                   else
                   {
                       DialogResult dialogresult = MessageBox.Show("Atención, Usted se dispone a eliminar el usuario '" + textBox1.Text + "'", "esta seguro?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                       if (dialogresult == DialogResult.Yes)
                       {
                           MySqlConnection conexion = GuiLogin.Conexion.ObtenConexion();
                           conexion.Open();
                           using (MySqlCommand borrausr = GuiLogin.Conexion.Comandos("DELETE FROM Users WHERE User='" + textBox1.Text + "'", conexion))
                               borrausr.ExecuteNonQuery();
                           dt = Users.GetUsers();
                           ds.Tables.Add(dt);
                           dataGridView1.DataSource = dt;
                           conexion.Close();
                           textBox1.Text = "";
                           textBox2.Text = "";
                           textBox3.Text = "";
                           textBox4.Text = "";
                           Tiempo.Enabled = true;
                           Tiempo.Interval = 1;

                       }
                       else
                       {

                       }
                   }
                 //  MessageBox.Show("Atención, Usted se dispone a eliminar el usuario '" + textBox1.Text + "', esta seguro?", MessageBoxButtons.YesNo,MessageBoxIcon.Warning);
               }
           }
           else
           {
               MessageBox.Show("Error, debe seleccionar un usuario primero");
           }
       }

       private void button4_Click(object sender, EventArgs e)
       {
           if (textBox1.Text != "")
           {
               if (textBox1.Text == "wctsa")
               {
                   MessageBox.Show("Error, este usuario es de sistema y no se puede modificar");
               }
               else
               {
                   Passwdchng frm = new Passwdchng();
                   /// frm.user = textBox1.Text;
                   frm.Show();
                   frm.user = textBox1.Text;
                                  
               }
           }
           else
           {
               MessageBox.Show("Error, debe seleccionar un usuario primero");
           }
       }

       private void button2_Click_1(object sender, EventArgs e)
       {
           if (lblactusr.Text == "wctsa")
           {
               MessageBox.Show("Error, este usuario es de sistema y no se puede modificar");
           }
           else
           {
               Passwdchng frm = new Passwdchng();
               frm.Show();
               frm.user = lblactusr.Text;
           }
           
       }

       private void button5_Click(object sender, EventArgs e)
       {
           UserEdit frm = new UserEdit();
           frm.user = "";
           frm.useredit = "N";
           if (frm.ShowDialog() == DialogResult.OK)
           {
               dt = Users.GetUsers();
               ds.Tables.Add(dt);
               dataGridView1.DataSource = dt;
               MySqlConnection conexion = GuiLogin.Conexion.ObtenConexion();
               conexion.Open();
               conexion.Close();
               textBox1.Text = "";
               textBox2.Text = "";
               textBox3.Text = "";
               textBox4.Text = "";
               Tiempo.Enabled = true;
               Tiempo.Interval = 1;
           }
       }

       private void Tiempo_Tick(object sender, EventArgs e)
       {
           dataGridView1.Enabled = true;
           MySqlConnection conexion = GuiLogin.Conexion.ObtenConexion();
           conexion.Open();
           using (MySqlCommand borrausr = GuiLogin.Conexion.Comandos("DELETE FROM Users WHERE User='" + textBox1.Text + "'", conexion))
               borrausr.ExecuteNonQuery();
           dt = Users.GetUsers();
           ds.Tables.Add(dt);
           dataGridView1.DataSource = dt;
           conexion.Close();
           Tiempo.Stop();
       }

  

 


    }
    public class Users
    {
        public static DataTable GetUsers()
        {
            using (MySqlConnection cn = GuiLogin.Conexion.ObtenConexion())
            {
                cn.Open();
                using (MySqlCommand cmd = cn.CreateCommand())
                {
                    cmd.CommandText = "SELECT User,SA,Role,Nombre FROM Users";
                    using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
                    {
                        DataTable dt = new DataTable();
                        da.Fill(dt);
                        return dt;
                    }

                }
            }
        }
    }
}
